#ifndef skyTimeCounter_H__
#define skyTimeCounter_H__


#include "./skyAdapter.h"

#ifdef _SYMBIAN
#include "./symbian/symTimeCounter.h"
#elif defined(_WIN_)
#include "../adapter/windows/winTimeCounter.h"
#elif defined(_DX90_)
#include "../adapter/dx90/dxFont.h"
#endif

namespace Sky
{
	class TimeCounter : public  OSTimeCounter
	{

	public:
		TimeCounter();
		Void Reset(u64* ResetTime);
		u64  GetTicksPerSecond();
		u64  CalTicksElapsed();
		Void Start(u64* StartTime);
		Void Stop(u64* StopTime);
		u64  GetTicksElapsed();
		u64  GetTicksCounted();
		u64  CalTicksCounted();
		Double getElapsedTime();
		Bool IsStopped();
	private:
		static Bool m_bUsingQPF;
		static u64 m_llQPFTickesPerSec;
		Double m_ElapsedTime;
		u64 m_llCountedLen;
		u64 m_llUncountedLen;
		u64 m_llElapsedLen;
		u64 m_llLastStoppedTime;
		u64 m_llLastResetedTime;
		u64 m_llLastElapsedTime;
	};
}
#endif